xen.git
18 years agohvm: Fix is_isa_irq_masked().
Keir Fraser [Wed, 12 Dec 2007 10:40:02 +0000 (10:40 +0000)]
hvm: Fix is_isa_irq_masked().

Incorrectly it was not checking whether the vlapic is masking the pic.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
18 years agoFix build after I removed test_assign_device from domctl union.
Keir Fraser [Wed, 12 Dec 2007 10:38:14 +0000 (10:38 +0000)]
Fix build after I removed test_assign_device from domctl union.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years agovt-d: Test device assignability in xend, but defer actual assignment to qemu-dm.
Keir Fraser [Wed, 12 Dec 2007 10:29:35 +0000 (10:29 +0000)]
vt-d: Test device assignability in xend, but defer actual assignment to qemu-dm.
Signed-off-by: Weidong Han <weidong.han@intel.com>
18 years agohvm: MTRR MSRs save/restore support.
Keir Fraser [Wed, 12 Dec 2007 10:25:18 +0000 (10:25 +0000)]
hvm: MTRR MSRs save/restore support.
Signed-off-by: Disheng Su <disheng.su@intel.com>
18 years agovt-d: Clean up hypervisor logging.
Keir Fraser [Wed, 12 Dec 2007 10:22:39 +0000 (10:22 +0000)]
vt-d: Clean up hypervisor logging.
Signed-off-by: Weidong Han <weidong.han@intel.com>
18 years agodocs: vtd.txt doc change
Keir Fraser [Wed, 12 Dec 2007 10:19:44 +0000 (10:19 +0000)]
docs: vtd.txt doc change

Added a note on conventional PCI device passthrough.

Signed-off-by: Allen Kay <allen.m.kay@intel.com>
18 years agoia64, xend: Close nvram file when rebooting HVM domain
Keir Fraser [Wed, 12 Dec 2007 10:08:54 +0000 (10:08 +0000)]
ia64, xend: Close nvram file when rebooting HVM domain
Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
18 years agoxend: Fix cleanup_domains() for suspending managed domains
Keir Fraser [Wed, 12 Dec 2007 10:08:14 +0000 (10:08 +0000)]
xend: Fix cleanup_domains() for suspending managed domains

When unmanaged domains with on_xend_stop="suspend" exist, managed
domains are not suspended by xend stop command.  The processing of
cleanup_domains() is aborted by exception. This patch keeps suspending
managed domains even if unmanaged domains exist.

Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
18 years agotools: Fix distutils installation of xsview.
Keir Fraser [Wed, 12 Dec 2007 10:05:53 +0000 (10:05 +0000)]
tools: Fix distutils installation of xsview.

Distutils won't install xsview unless it has an __init__.py.  This
patch adds an empty one, which is all that is required.

Signed-off-by: Mark Williamson <mark.williamson@cl.cam.ac.uk>
18 years agotools: Use os.system instead of exec to start xentop.
Keir Fraser [Wed, 12 Dec 2007 10:04:29 +0000 (10:04 +0000)]
tools: Use os.system instead of exec to start xentop.

This makes no difference to the visible behaviour of "xm top" but
avoids the whole of xm from quitting if you're in "xm shell".  This
provides the more intuitive behaviour of returning to the xm shell
interface after leaving xm top.

Signed-off-by: Mark Williamson <mark.williamson@cl.cam.ac.uk>
18 years agotools: Remove references to USB paravirt driver. Doesn't affect qemu usb args.
Keir Fraser [Wed, 12 Dec 2007 10:03:32 +0000 (10:03 +0000)]
tools: Remove references to USB paravirt driver.  Doesn't affect qemu usb args.

Some relics in the control tools still refer to the USB paravirt
driver.  Remove this as it's dead code and is in the history for
anyone really interested. The Qemu device model has its own USB
configuration, which should still work.

Signed-off-by: Mark Williamson <mark.williamson@cl.cam.ac.uk>
18 years agoAdd missing file from previous changeset.
Keir Fraser [Wed, 12 Dec 2007 10:03:09 +0000 (10:03 +0000)]
Add missing file from previous changeset.

18 years agodocs: Adjust revision number in Xen-API document and introduce revision history.
Keir Fraser [Wed, 12 Dec 2007 09:59:53 +0000 (09:59 +0000)]
docs: Adjust revision number in Xen-API document and introduce revision history.

This patch adjusts the revision number to 1.0.1 and date in the
Xen-API document and introduces a revision history with entries for
1.0.0 and 1.0.1.

Signed-off-by: Stefan Berger <stefanB@us.ibm.com>
18 years agoxend, acm: Extend Xen-API with function to reset the policy
Keir Fraser [Wed, 12 Dec 2007 09:57:55 +0000 (09:57 +0000)]
xend, acm: Extend Xen-API with function to reset the policy
This patch extends the Xen-API and the legacy XML-RPC interface with a
function to reset the policy on the system (through an update with the
default policy). I adapted the code in 'xm resetpolicy' to use this
now.

This patch also extends libxen and the documentation to reflect the
new function.

Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
18 years agoFix domctl GCC dependency
Keir Fraser [Wed, 12 Dec 2007 09:54:21 +0000 (09:54 +0000)]
Fix domctl GCC dependency

Compilers other than GCC don't allow zero-sized structs.

Signed-off-by: John Levon <john.levon@sun.com>
18 years agoioemu/qemu vga: save and restore vram buffer
Keir Fraser [Wed, 12 Dec 2007 09:53:00 +0000 (09:53 +0000)]
ioemu/qemu vga: save and restore vram buffer

The existing stdvga driver from xen-unstable tools/ioemu/hw/vga* does
not save the emulated VGA memory contents.  The symptoms include video
malfunction after restore, including black screen (which can often be
fixed by asking the guest to redraw) but also missing font setup etc.
The attached patch fixes this by saving the entire VGA memory buffer,
just like the Xen ioemu Cirrus emulator does.

I have reinterpreted the `is_vbe' byte, which is related to
CONFIG_BOCHS_VBE, as a general flags word.  This enables my code to
allow old images to be restored (albeit with loss of VGA memory), by
using another bit in that word to indicate whether the VGA memory dump
is present.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
18 years agoioemu: Include mouse dz in xenfb event packet
Keir Fraser [Mon, 10 Dec 2007 13:49:22 +0000 (13:49 +0000)]
ioemu: Include mouse dz in xenfb event packet

Needed for mouse wheel support in a PV guest.

Signed-off-by: Pat Campbell <plc@novell.com>
18 years agoxm-test: Don't run security test if ACM is not enabled.
Keir Fraser [Mon, 10 Dec 2007 12:02:46 +0000 (12:02 +0000)]
xm-test: Don't run security test if ACM is not enabled.

I forgot to put in the check to prevent this test case from running
when ACM is not compiled into Xen. I am resetting the policy so that
an update with the prepared policy can be done without changing that
policy's header to match the current policy's version.

Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
18 years agox86: avoid LOCK prefix in some cases where it's not necessary.
Keir Fraser [Mon, 10 Dec 2007 11:55:55 +0000 (11:55 +0000)]
x86: avoid LOCK prefix in some cases where it's not necessary.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
18 years agox86: eliminate (unused) return value from exception handling routines
Keir Fraser [Mon, 10 Dec 2007 11:49:12 +0000 (11:49 +0000)]
x86: eliminate (unused) return value from exception handling routines
Signed-off-by: Jan Beulich <jbeulich@novell.com>
18 years agoAvoid duplication of domainID in messages.
Keir Fraser [Mon, 10 Dec 2007 11:41:40 +0000 (11:41 +0000)]
Avoid duplication of domainID in messages.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
18 years agoinit_heap_pages() can be static.
Keir Fraser [Mon, 10 Dec 2007 11:37:13 +0000 (11:37 +0000)]
init_heap_pages() can be static.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
18 years agox86: Clean up boot/wakeup code.
Keir Fraser [Mon, 10 Dec 2007 11:34:02 +0000 (11:34 +0000)]
x86: Clean up boot/wakeup code.

 * Generalise wakeup stack to general 'early stack' used everywhere.
 * Ensure things that must be aligned are aligned.
 * Remove some unused symbols.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years agoFix XEN_EXTRAVERSION and shorten so it fits on a single line after
Keir Fraser [Sat, 8 Dec 2007 17:35:32 +0000 (17:35 +0000)]
Fix XEN_EXTRAVERSION and shorten so it fits on a single line after
figlet-isation: 3.2.0-rc2-pre.

18 years agoRevert 16560:822d4ec5cfb1.
Keir Fraser [Sat, 8 Dec 2007 17:32:01 +0000 (17:32 +0000)]
Revert 16560:822d4ec5cfb1.

Preference seems to be to update library versions only when the ABI
changes. Only libxenctrl/libxenguest have their version number changed
to 3.2.0, as a reminder that they change on pretty much every major
release.

libfsimage/libxenstore/libblktap have not changed substantially
recently, hence the ABI has not changed, and version number stays the
same as in Xen 3.1 (and before).

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years agoStart development for 3.2.0-rc2.
Keir Fraser [Sat, 8 Dec 2007 17:27:10 +0000 (17:27 +0000)]
Start development for 3.2.0-rc2.

18 years agoAdded tag 3.2.0-rc1 for changeset 1f0c6e0d74a4
Keir Fraser [Sat, 8 Dec 2007 17:00:11 +0000 (17:00 +0000)]
Added tag 3.2.0-rc1 for changeset 1f0c6e0d74a4

18 years agoUpdate Xen version to 3.2.0-rc1
Keir Fraser [Sat, 8 Dec 2007 16:59:49 +0000 (16:59 +0000)]
Update Xen version to 3.2.0-rc1

18 years agohvm stdvga: Do not emulate PIO reads inside Xen. They should be rare
Keir Fraser [Sat, 8 Dec 2007 16:57:13 +0000 (16:57 +0000)]
hvm stdvga: Do not emulate PIO reads inside Xen. They should be rare
(PIO write emulation is really for book-keeping to detect when we
enter/leave stdvga mode, and to work out what to do with mmio
accesses), and we may do the wrong thing depending on emulated SVGA
hardware and current mode.

This simplifies the code and means that 'stdvga=1' once again works
properly and causes the stdvga bios to be loaded by hvmloader.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years agoxm-test, acm: fixes an API call due to recent changes.
Keir Fraser [Sat, 8 Dec 2007 15:47:31 +0000 (15:47 +0000)]
xm-test, acm: fixes an API call due to recent changes.
Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
18 years agoqemu 16550 uart: Fast-drop bursts of transmitted characters to avoid
Keir Fraser [Sat, 8 Dec 2007 15:46:04 +0000 (15:46 +0000)]
qemu 16550 uart: Fast-drop bursts of transmitted characters to avoid
stalling due to a disconnected pipe or pty.
Signed-off-by: Trolle Selander <trolle.selander@gmail.com>
18 years agox86: Respect e820 map even below 16MB.
Keir Fraser [Fri, 7 Dec 2007 18:24:33 +0000 (18:24 +0000)]
x86: Respect e820 map even below 16MB.

NB. Even with this patch, x86/32 still statically allocates the range
1MB-12MB. This can be changed if there really are platforms that need
stuff to persist in that range after the OS starts to boot.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years agox86: Change proliant io emulation stub to use pushf/popf instead of pushfw/popfw.
Keir Fraser [Fri, 7 Dec 2007 17:05:15 +0000 (17:05 +0000)]
x86: Change proliant io emulation stub to use pushf/popf instead of pushfw/popfw.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years agovmx realmode: Fix exception delivery w.r.t. in-flight I/O.
Keir Fraser [Fri, 7 Dec 2007 16:39:15 +0000 (16:39 +0000)]
vmx realmode: Fix exception delivery w.r.t. in-flight I/O.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years agotools: Rationalise library soname versions.
Keir Fraser [Fri, 7 Dec 2007 14:44:13 +0000 (14:44 +0000)]
tools: Rationalise library soname versions.

 * Arrange for the sonames of libxenstore, libxc, libfsimage and
   libblktap to be set from a single place in Config.mk.
 * Bumps the soname major version number to 3.2 in preparation for
   3.2 rc1 after which we do not expect to have ABI changes.

I have not done anything about libaio and libflask.  The former is
imported from elsewhere and if we're lucky will have sane versioning
upstream.

libflask has a very small interface and I'm hoping that the XSM
authors have been keeping some ABI discipline.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
18 years agohvm: Clean up AP initialisation. This allows AP bringup into emulated
Keir Fraser [Fri, 7 Dec 2007 14:28:07 +0000 (14:28 +0000)]
hvm: Clean up AP initialisation. This allows AP bringup into emulated
real mode when running on VMX, as well as removing 100 LOC.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years agoioemu: Include termios.h and sys/ioctl.h to get TIOCM_* definitions.
Keir Fraser [Fri, 7 Dec 2007 12:48:36 +0000 (12:48 +0000)]
ioemu: Include termios.h and sys/ioctl.h to get TIOCM_* definitions.
This is preferable to hard-coding them in the ioemu source file, or
including a Linux-specific header.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years agoxm: Fix help messages of xm vcpu-list/uptime
Keir Fraser [Fri, 7 Dec 2007 12:44:27 +0000 (12:44 +0000)]
xm: Fix help messages of xm vcpu-list/uptime

We can give multiple domains to the following commands.
But, the help messages of the commands are explained to be able
to give a single domain.

Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
18 years ago[IOEMU] Correct hu keymap definitions
Keir Fraser [Fri, 7 Dec 2007 12:43:06 +0000 (12:43 +0000)]
[IOEMU] Correct hu keymap definitions

Signed-off-by: Pat Campbell <plc@novell.com>
18 years ago[IOEMU] Add latin2 key symbol definitions.
Keir Fraser [Fri, 7 Dec 2007 12:42:24 +0000 (12:42 +0000)]
[IOEMU] Add latin2 key symbol definitions.

Allows Hungarian users plus others to enter their language specific
accented characters.

Signed-off-by: Pat Campbell <plc@novell.com>
18 years agoFix ioemu compile: serial.c was including a Linux-specific header.
Keir Fraser [Fri, 7 Dec 2007 00:41:54 +0000 (00:41 +0000)]
Fix ioemu compile: serial.c was including a Linux-specific header.
Signed-off-by: John Levon <john.levon@sun.com>
18 years agox86: Remove bogus variables on construct_dom0()
Keir Fraser [Thu, 6 Dec 2007 17:47:53 +0000 (17:47 +0000)]
x86: Remove bogus variables on construct_dom0()

The check for supervisor_mode_kernel feature bit was being done on the
dom0_features_{supported,required} variables, but they are always set
to zero.

The feature bits are stored on elf_dom_parms struct, not on those
variables.

From: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years agoia64: Fix build after buf_ioreq struct change.
Keir Fraser [Thu, 6 Dec 2007 17:10:26 +0000 (17:10 +0000)]
ia64: Fix build after buf_ioreq struct change.
Signed-off-by: Alex Williamson <alex.williamson@hp.com>
18 years agolibxc: Interface has changed a bit since Xen 3.1, so bump the major
Keir Fraser [Thu, 6 Dec 2007 15:36:07 +0000 (15:36 +0000)]
libxc: Interface has changed a bit since Xen 3.1, so bump the major
number.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years agohvm: buffered_ioreq does not need a 'df' field. Add explicit bitfield
Keir Fraser [Thu, 6 Dec 2007 15:17:48 +0000 (15:17 +0000)]
hvm: buffered_ioreq does not need a 'df' field. Add explicit bitfield
padding to ioreq and buf_ioreq structs.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years ago32-on-64: Fixes to previous changeset.
Keir Fraser [Thu, 6 Dec 2007 13:56:00 +0000 (13:56 +0000)]
32-on-64: Fixes to previous changeset.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years ago32-on-64: Fix domain address-size clamping, implement
Keir Fraser [Thu, 6 Dec 2007 13:39:19 +0000 (13:39 +0000)]
32-on-64: Fix domain address-size clamping, implement
copy-on-grant-transfer, and eliminate 166GB memory limit for x86/64
Xen.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years agoACM: Recover if XML policy representation is missing.
Keir Fraser [Thu, 6 Dec 2007 12:13:12 +0000 (12:13 +0000)]
ACM: Recover if XML policy representation is missing.

Recover the system if the XML representation of the currently loaded
policy is missing. Force the installation of the DEFAULT policy.

Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
18 years agoxm-test: An additional ACM security test case for the test suite.
Keir Fraser [Thu, 6 Dec 2007 12:12:29 +0000 (12:12 +0000)]
xm-test: An additional ACM security test case for the test suite.
Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
18 years agohvm: Split no_missed_tick_accounting into two modes:
Keir Fraser [Thu, 6 Dec 2007 11:56:51 +0000 (11:56 +0000)]
hvm: Split no_missed_tick_accounting into two modes:
 * no_missed_ticks_pending ('SYNC')
 * one_missed_tick_pending ('MIXED')

This is based on a patch by Dave Winchell <dwinchell@virtualiron.com>

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years agoxc ptrace: Fix a couple of bugs in page-table walking.
Keir Fraser [Thu, 6 Dec 2007 11:29:18 +0000 (11:29 +0000)]
xc ptrace: Fix a couple of bugs in page-table walking.
Signed-off-by: John Zulauf <john.zulauf@intel.com>
18 years ago[XEN, 32on64]: Correct continuation translation for large
Keir Fraser [Thu, 6 Dec 2007 11:24:02 +0000 (11:24 +0000)]
[XEN, 32on64]: Correct continuation translation for large
compat_mmuext hypercalls.

At the point where we translate the continuation "nat_ops" points to
the beginning of the batch of "i" entries, therefore it must be
incremented by the number of entries processed "i - left". At the same
point "cmp_uops" points to the end of the batch of entries and must
therefore be decremented by "left".

The new count value has already been set by do_mmuext_op to "left" and
therefore it is correct to add "count - i" since that is the number of
entries that remain after this batch.

Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
18 years agox86: Fix management support on HP ProLiant systems.
Keir Fraser [Thu, 6 Dec 2007 11:23:04 +0000 (11:23 +0000)]
x86: Fix management support on HP ProLiant systems.

Adds support to allow host-platform-specific handling of I/O port
traps. Specifically adds support to handle an HP ProLiant I/O port in a
special way.

Signed-off-by: Mike Garrett <michael.garrett@hp.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years agoqemu-dm: Limit transmit retries from virtual UART FIFO.
Keir Fraser [Thu, 6 Dec 2007 10:41:10 +0000 (10:41 +0000)]
qemu-dm: Limit transmit retries from virtual UART FIFO.
Signed-off-by: Trolle Selander <trolle.selander@gmail.com>
18 years agoxenstore: expanding_buffer variables are supposed to be static. Apart
Keir Fraser [Wed, 5 Dec 2007 17:56:13 +0000 (17:56 +0000)]
xenstore: expanding_buffer variables are supposed to be static. Apart
from anything else, this was guaranteeing they were initialised.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years agoCheck block file existence.
Keir Fraser [Wed, 5 Dec 2007 17:28:59 +0000 (17:28 +0000)]
Check block file existence.
Signed-off-by: Akio Takebe <takebe_akio@jp.fujitsu.com>
18 years ago[QEMU-DM] Upgrade emulated UART to 16550A.
Keir Fraser [Wed, 5 Dec 2007 14:21:00 +0000 (14:21 +0000)]
[QEMU-DM] Upgrade emulated UART to 16550A.

This patch adds 16550 emulation to qemu-dm. I still consider it a work
in progress, but from my testing, it consistently performs better than
the old code already, sometimes considerably so (on my laptop, dumping
out data over serial from a HVM DomU -> pty in Dom0 was up to 5.3
times faster than with the old 16450 code). I can consistenly reach
full 115200 baud speeds over physical serial lines when the virtual
device is backed by a phys port, which I never could with the old code.

There are still some things to be done. I want to add proper error
handling, so that overflow/framing & parity errors on the physical
port get detected and reported by the virtual port. Also, now that
FIFOs are in place, I believe performance could be improved
significantly by putting some code into the hypervisor so that reads &
writes from the FIFOs don't have to exit into qemu-dm at all. I'm also
reading up on the specs for newer uarts with deeper FIFOs.

Signed-off-by: Trolle Selander <trolle.selander@gmail.com>
18 years ago[QEMU-DM] Modem control line & msl/mcr register support.
Keir Fraser [Wed, 5 Dec 2007 14:18:34 +0000 (14:18 +0000)]
[QEMU-DM] Modem control line & msl/mcr register support.

This patch enables handling of the modem/flow control lines of a
serial port when the backend for the virtual port is a physical serial
port. During initialization, it tries to load the msr with the
detected status from the real port (this is consistent with physical
uart, which starts with its msr values set according to the status of
the modem status lines). If the ioctl returns -ENOTSUP, then the code
assumes the backend is not a real serial port and will disable any
further attempts to manipulate or read the physical port's line
status.

It's tries to be as "correct" as possible in its msr/msl handling,
with the exception of modem line status change interrupts. A real
16550 uart apparently have a delay time of 250ns between when a modem
status line changes and the IRQ line goes high. In this patch, an
"idle" port is polled for line status changes only if the guest has
enabled UART_IER_MSI is enabled, and only polled every 10 ms.

Signed-off-by: Trolle Selander <trolle.selander@gmail.com>
18 years agohvm: Initialize vlapic->timer_last_update.
Keir Fraser [Wed, 5 Dec 2007 14:01:39 +0000 (14:01 +0000)]
hvm: Initialize vlapic->timer_last_update.

Without the fix, before the first vlapic timer interrupt is injected,
the "vlapic->timer_last_update" in vlapic_get_tmcct()  is always 0,
causing a wrong value of counter_passed.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
18 years agox86_64: Do not leak trampoline mapping into dom0's initial address space.
Keir Fraser [Wed, 5 Dec 2007 13:49:19 +0000 (13:49 +0000)]
x86_64: Do not leak trampoline mapping into dom0's initial address space.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years agoxenstore: document the xenstore protocol
Keir Fraser [Wed, 5 Dec 2007 11:08:07 +0000 (11:08 +0000)]
xenstore: document the xenstore protocol

The attached patch adds a new text file docs/misc/xenstore.txt which
describes the actual protocol implemented by xenstored.  This was
reverse-engineered from the actual code in tools/xenstore.

I didn't bother making any automatic arrangements to ensure that the
implemented and documented protocols are kept in step (for example,
automatic code generation, etc.)  The protocol is rather messy
unfortunately and unsuitable for an xdr approach, and in any case is
not likely to change very quickly.

Also in this patch are a couple of comments for xenstored_core.c which
help clarify the behaviour of some payload parsing helper functions.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
18 years agoxenstore-ls -f for find(1)-like output
Keir Fraser [Wed, 5 Dec 2007 11:07:12 +0000 (11:07 +0000)]
xenstore-ls -f for find(1)-like output

The current output of xenstore-ls can be quite hard to read and it is
not very intractable for postprocessing with sort|diff and the like.

The patch below provides a -f option which produces output with the
full key pathname on each line, and which disables the value
truncation and the `.'-padding when used with -p (since these latter
two aren't likely to be very useful when values are preceded by long
pathnames).

While I was at it I added the `-s' option to the usage message, where
it was previously missing.

The results looks like this:

...
/local/domain/1 = ""
/local/domain/1/vm = "/vm/8b5fd34a-e268-fab5-9cde-c06eda21df16"
/local/domain/1/device = ""
/local/domain/1/device/vbd = ""
/local/domain/1/device/vbd/2049 = ""
/local/domain/1/device/vbd/2049/virtual-device = "2049"
/local/domain/1/device/vbd/2049/device-type = "disk"
/local/domain/1/device/vbd/2049/protocol = "x86_32-abi"
...

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
18 years agoxenstore: deprecating but \-quoting binary data.
Keir Fraser [Wed, 5 Dec 2007 11:05:47 +0000 (11:05 +0000)]
xenstore: deprecating but \-quoting binary data.

Presently it's not clear what the allowable character set is for
values in xenstore.  The current command-line tools just pass values
to printf("%s",...) so implicitly assume that it's 7-bit printable
ASCII (since the interpretation of 8-bit characters would be unclear).
However there are rumours of programs which dump binary data into
xenstore and/or bugs involving nul bytes being added to the ends of
xenstore values (and even of some drivers insisting on a spurious
nul).

There isn't all that much useful documentation about xenstore.  There
is a doc detailing which xenstore keys may be used and what their
meanings are (interface.tex) but it is very out of date, amongst other
reasons because it's in format which is not very easy to update when
adding functionality to the code and because there is no way to check
programs' behaviour in xenstore against the spec.  I think the
xenstore part of interface.tex should be replaced with a new document
in a simpler format, which should amonst other things be sufficiently
machine-readable that automatic testing could reveal at least basic
out-of-spec behaviours like setting or using undocumented keys.

This new document ought to specify the allowable character set of both
keys and values, and ought to specify the xenstored protocol as well.

It seems to me that the appropriate character set for xenstore values
is 7-bit printing ASCII (0x20..0x7e).  Values should not have a
trailing nul byte `on the wire' but of course the xs library interface
should continue to add an additional nul beyond the quoted length for
the convenience of callers.

That is consistent with nearly all of the existing uses and makes the
whole system much more tractable compared to an explicit expectation
that binary data will be stored.  (For example, if we like binary data
in xenstore, why are uuids represented in their printable hex
encoding?)  xenstore data is supposedly non-performance-critical
metadata for use by control plane machinery so the overhead of
printing and parsing text strings is hardly a problem.

Applications which set binary values should be deprecated but to avoid
breaking those applications xenstored should continue indefinitely to
be binary-transparent.

Under these circumstances it can only be regarded as a bug that the
current command-line tools are lossy in the presence of binary data.
Not only does this make them break for those now-deprecated uses, but
it also prevents them from being used to detect and debug problems
relating to the exact byte strings being recorded in xenstore.

As a first step towards the utopia I describe above, this patch
causes xenstore-read and -ls to \-escape the values of xenstore
keys, and xenstore-write to un-\-escape them.  The escaping is a
subset of that permitted by C89; only \t \r \n \\ and hex and octal
are used and recognised.  (So no \f, \a etc.)

This change will not change the representation by these tools of
values which contain only 7-bit printing ASCII characters unless they
contain \'s.

Values which contain \'s will need to be quoted on entry and dequoted
on exit if being manipulated by xenstore-*.  The only values likely to
be affected are paths in Windows guest filesystems and in practice we
believe that any such filename which is actually relevant to anything
will be set other than via xenstore-write.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
18 years agovt-d: Use bitmap to solve domain-id limitation issue.
Keir Fraser [Wed, 5 Dec 2007 10:53:47 +0000 (10:53 +0000)]
vt-d: Use bitmap to solve domain-id limitation issue.

The Capability register reports the domain-id width supported by
hardware. For implementations supporting less than 16-bit domainids,
unused bits of domain identifier field(87:72) in Context entry are
treated as reserved by hardware. For example, for an implementation
supporting 4-bit domain-ids, bits 87:76 of this field are treated as
reserved. 16 is a small number, overflow is easy to happen. What's
more,
context-entries programmed with the same domain identifier must always
reference the same address translation structure (through the ASR
field). So Dom16 will conflict with Dom0, and device assignment fails.

This patch implements a domaid id bitmap to solve above issue.

Signed-off-by: Weidong Han <weidong.han@intel.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years agoPV-on-HVM: Fix build for RHEL/SLES.
Keir Fraser [Wed, 5 Dec 2007 10:42:45 +0000 (10:42 +0000)]
PV-on-HVM: Fix build for RHEL/SLES.
Signed-off-by: Ben Guthro <bguthro@virtualiron.com>
18 years agoxm: Fix help message of xm info.
Keir Fraser [Wed, 5 Dec 2007 10:40:19 +0000 (10:40 +0000)]
xm: Fix help message of xm info.
Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
18 years agox86_emulate: EFLAGS.PF only reflects least-significant byte of result,
Keir Fraser [Wed, 5 Dec 2007 10:34:15 +0000 (10:34 +0000)]
x86_emulate: EFLAGS.PF only reflects least-significant byte of result,
so even_parity() can return to its original prototype.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years ago[USER GUIDE] [ACM/sHype Update] User Guide Update for sHype/Xen
Keir Fraser [Wed, 5 Dec 2007 10:00:42 +0000 (10:00 +0000)]
[USER GUIDE] [ACM/sHype Update] User Guide Update for sHype/Xen

This patch updates the ACM/sHype user guide chapter. It updates the
examples throughout the chapter and describes advanced security policy
and domain management based on the new ACM xm command extensions that
were submitted this morning (cf.
http://lists.xensource.com/archives/html/xen-devel/2007-12/msg00043.html
and
http://lists.xensource.com/archives/html/xen-devel/2007-12/msg00041.html).

Signed-off: Reiner Sailer <sailer@us.ibm.com>

18 years agoblktap: cleanups for *BSD.
Keir Fraser [Wed, 5 Dec 2007 09:59:23 +0000 (09:59 +0000)]
blktap: cleanups for *BSD.
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
18 years agoFix help message of on_xend_stop
Keir Fraser [Wed, 5 Dec 2007 09:57:32 +0000 (09:57 +0000)]
Fix help message of on_xend_stop
Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
18 years agox86: Sync cpu/common.c with Linux 2.6.18.
Keir Fraser [Wed, 5 Dec 2007 09:56:17 +0000 (09:56 +0000)]
x86: Sync cpu/common.c with Linux 2.6.18.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years agox86 domain builder: Propagate x86_compat return code.
Keir Fraser [Wed, 5 Dec 2007 09:46:55 +0000 (09:46 +0000)]
x86 domain builder: Propagate x86_compat return code.
Signed-off-by: Elizabeth Kon <eak@us.ibm.com>
18 years agoImplement legacy XML-RPC interface for ACM commands.
Keir Fraser [Wed, 5 Dec 2007 09:45:13 +0000 (09:45 +0000)]
Implement legacy XML-RPC interface for ACM commands.

This patch moves the directory of files where xend is writing policies
and resource labels into to /var/lib/xend/security/policies.

Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
18 years agoImplement legacy XML-RPC interface for ACM commands.
Keir Fraser [Wed, 5 Dec 2007 09:44:20 +0000 (09:44 +0000)]
Implement legacy XML-RPC interface for ACM commands.

This patch implements a (non Xen-API) legacy XML-RPC interface for the
ACM commands and funnels the calls into code introduced by the Xen-API
support for ACM security management. Since some of the functionality
has changed, also the xm applications have changed. In particular the
following old commands have been removed along with some tools the
have become obsolete now:

- loadpolicy    (included in: setpolicy)
- makepolicy    (included in: setpolicy)
- cfgbootpolicy (included in: setpolicy)

and the following commands been introduced:

- setpolicy
- getpolicy
- resetpolicy

All tools have been adapted to work in Xen-API and legacy XML-RPC
mode. Both modes support the same functionality.

Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
18 years agoRevert 16498:d2bef6551c1263e457aef75ce403ba53652a803f.
Keir Fraser [Tue, 4 Dec 2007 22:54:58 +0000 (22:54 +0000)]
Revert 16498:d2bef6551c1263e457aef75ce403ba53652a803f.

18 years agoFix xenctl_cpumap_to_cpumask.
Keir Fraser [Tue, 4 Dec 2007 11:52:10 +0000 (11:52 +0000)]
Fix xenctl_cpumap_to_cpumask.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years agox86_emulate: Fix SHLD/SHRD emulation -- cannot rely on dst.orig_val
Keir Fraser [Tue, 4 Dec 2007 11:23:05 +0000 (11:23 +0000)]
x86_emulate: Fix SHLD/SHRD emulation -- cannot rely on dst.orig_val
being already initialised.
From: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years agodocs: Fix interface manual to correctly reference
Keir Fraser [Tue, 4 Dec 2007 11:16:41 +0000 (11:16 +0000)]
docs: Fix interface manual to correctly reference
update_va_mapping_otherdomain.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years agoMerge with ia64.
Keir Fraser [Tue, 4 Dec 2007 11:06:05 +0000 (11:06 +0000)]
Merge with ia64.

18 years agox86: clean up mm.c and cache 'current' where appropriate.
Keir Fraser [Tue, 4 Dec 2007 11:04:57 +0000 (11:04 +0000)]
x86: clean up mm.c and cache 'current' where appropriate.

Attached patch caches current vcpu and current->domain where
appropriate. Make mod_l4_entry() definition matching with
mod_l?_entry(). Since current->domain was always passed to it, this
has no functional change.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
18 years agoblkif interface: Add BLKIF_OP_FLUSH_DISKCACHE.
Keir Fraser [Tue, 4 Dec 2007 10:50:28 +0000 (10:50 +0000)]
blkif interface: Add BLKIF_OP_FLUSH_DISKCACHE.

This disk operation, implemented on Solaris only so far, asks a
backend to flush the disk caches of the underlying storage if
possible, and is contigent upon the 'feature-flush-cache' xenstore
flag (although currently Solaris will always attempt to flush
anyway).

Signed-off-by: John Levon <john.levon@sun.com>
18 years agoblktap: remove unused headers.
Keir Fraser [Tue, 4 Dec 2007 10:48:28 +0000 (10:48 +0000)]
blktap: remove unused headers.

Attached patch removes unused linux specific headers
and makes bswap.h ready for BSD support.

This is first step for BSD support in blktap. More to come.
No functional change.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
18 years agotboot, xen: Update for Trusted Boot v20071128.
Keir Fraser [Tue, 4 Dec 2007 10:47:10 +0000 (10:47 +0000)]
tboot, xen: Update for Trusted Boot v20071128.

This patch updates the Xen to work with the latest version (20071128)
of Trusted Boot (tboot).  This version of tboot now resides at 16MB
(instead of the previous <1MB), in addition to several other
enhancements.  By residing at 16MB, this version of tboot will be
protected from access by dom0.

This patch allows Xen to correctly map the tboot shutdown code that it
must trampoline into for a clean shutdown (without this patch Xen will
fault on shutdown).  This patch will also work with the previous
version of tboot.

Signed-off-by: Joseph Cihula <joseph.cihula@intel.com>
18 years agoxend: Implement get_by_name_label for class XendNetwork
Keir Fraser [Tue, 4 Dec 2007 10:41:55 +0000 (10:41 +0000)]
xend: Implement get_by_name_label for class XendNetwork

Although XenAPI c-bindings support this operation on Network class,
there is no implementation in xend.  This patch provides one.

Signed-off-by: Jim Fehlig <jfehlig@novell.com>
18 years agoFix xenmon.py to work on Solaris
Keir Fraser [Tue, 4 Dec 2007 10:40:48 +0000 (10:40 +0000)]
Fix xenmon.py to work on Solaris

The xenmon.py script does not work on Solaris because of (1) its
assumption that xenbaked is in the users path and, (2) the use of the
killall command. Changed xenmon.py to use pkill instead and provided
the path to xenbaked on Solaris.

Signed-off-by: Tariq Magdon-Ismail <tariqmi@sun.com>
18 years agovt-d: Print messages when:
Keir Fraser [Tue, 4 Dec 2007 10:29:00 +0000 (10:29 +0000)]
vt-d: Print messages when:
 - vt-d has been enabled by xen
 - user attempts assign a PCI device that has already been assigned to another hvm guest

Signed-off-by: Allen Kay <allen.m.kay@intel.com>
18 years agoxsm: Consolidate xsm processing within domain control hypercall.
Keir Fraser [Tue, 4 Dec 2007 10:25:35 +0000 (10:25 +0000)]
xsm: Consolidate xsm processing within domain control hypercall.

Consolidate all the 15 xsm calls from within do_domctl a single
routine that is only called in one place, xsm_domctl:

int xsm_domctl (struct xen_domctl *domctl);

The parameter to domctl is a pointer to the xen_domctl structure that
contains a union of all sub operational parameters.

The benefits of this patch include:

(1) Easier to maintain because there is one place in the entire
hypercall to check with the xsm, instead of 15 or more.

(2) New sub-operations don't also need to add a corresponding xsm
    function.

(3) Removes 178 lines of code.

(4) Enhanced security because of 1-4.

Signed-off-by: Mike D. Day <ncmike@us.ibm.com>
18 years agoxentrace: Don't append trace on existing file.
Keir Fraser [Tue, 4 Dec 2007 10:17:32 +0000 (10:17 +0000)]
xentrace: Don't append trace on existing file.

When you run "xentrace -e <mask> trace.output" the first time, all is
fine. When you run it a second time, then the data is appended which
makes you reading old data with xentrace_format and you interprete it
as new data. This usually happens when you automated tracing guests
with xentrace and xentrace_format with a script.

Therefore, attached patch makes xentrace to truncate the file to zero
bytes before writing any data.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
18 years agodomain builder: make mmap() failure message more verbose.
Keir Fraser [Tue, 4 Dec 2007 10:13:04 +0000 (10:13 +0000)]
domain builder: make mmap() failure message more verbose.
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
18 years agomini-os: No -fpic when building for x86.
Keir Fraser [Tue, 4 Dec 2007 10:11:54 +0000 (10:11 +0000)]
mini-os: No -fpic when building for x86.
Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
18 years agovnet: Fix compilation on x86/64 which erroneously asserts
Keir Fraser [Tue, 4 Dec 2007 10:10:23 +0000 (10:10 +0000)]
vnet: Fix compilation on x86/64 which erroneously asserts
__ARCH_WANT_SYS_SOCKETCALL.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years agovnet: Fix compilation.
Keir Fraser [Tue, 4 Dec 2007 10:04:00 +0000 (10:04 +0000)]
vnet: Fix compilation.
Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
18 years agox86: Move get_page/put_page out of header file, and only print on
Keir Fraser [Tue, 4 Dec 2007 09:56:10 +0000 (09:56 +0000)]
x86: Move get_page/put_page out of header file, and only print on
get_page() failure if the domain is not dying.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years agomerge with xen-unstable.hg
Alex Williamson [Fri, 30 Nov 2007 15:54:33 +0000 (08:54 -0700)]
merge with xen-unstable.hg

18 years agox86_emulate: Fix POPA. Few other cleanups.
Keir Fraser [Thu, 29 Nov 2007 19:30:33 +0000 (19:30 +0000)]
x86_emulate: Fix POPA. Few other cleanups.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
18 years ago[IA64] Implement guest_os_type for ia64
Alex Williamson [Thu, 29 Nov 2007 19:15:43 +0000 (12:15 -0700)]
[IA64] Implement guest_os_type for ia64

This makes use of the domain config option guest_os_type for
ia64 and removes the backing for the previous ACPI based
mechanism used previously.  A user wanting optimal performance
for a specific type of OS guest running in an HVM domain should
make use of this new option.  See updated xmexmaple.vti for
available options.  All supported OSes should always work using
the default option or leaving the option unspecified.  Originally
based on patch from Zhang Xin.

Signed-off-by: Alex Williamson <alex.williamson@hp.com>
18 years ago[IA64] Provide backing for XEN_DOMCTL_set_opt_feature
Alex Williamson [Thu, 29 Nov 2007 19:01:44 +0000 (12:01 -0700)]
[IA64] Provide backing for XEN_DOMCTL_set_opt_feature

Signed-off-by: Alex Williamson <alex.williamson@hp.com>
18 years ago[IA64] Create XEN_DOMCTL_set_opt_feature
Alex Williamson [Thu, 29 Nov 2007 18:57:23 +0000 (11:57 -0700)]
[IA64] Create XEN_DOMCTL_set_opt_feature

Intended for domain builder code to be able to set architecture
specific optimization features for a domain.

Signed-off-by: Alex Williamson <alex.williamson@hp.com>
Acked-by: Keir Fraser <keir.fraser@citrix.com>
18 years ago[IA64] Create common guest_os_type domain config option
Alex Williamson [Thu, 29 Nov 2007 18:54:31 +0000 (11:54 -0700)]
[IA64] Create common guest_os_type domain config option

This is an optional domain config entry that may be used by
architecture specific builder code to setup various optimizations
based on the guest OS intended to run in the domain.  Based on
patch from Zhang Xin.

Signed-off-by: Alex Williamson <alex.williamson@hp.com>
Acked-by: Keir Fraser <keir.fraser@citrix.com>
18 years agovmx: Better tracing in vmcs_dump_vcpu() -- grab RIP/RSP/RFLAGS from
Keir Fraser [Wed, 28 Nov 2007 22:36:33 +0000 (22:36 +0000)]
vmx: Better tracing in vmcs_dump_vcpu() -- grab RIP/RSP/RFLAGS from
cpu_user_regs structure as well as VMCS.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>